#!/usr/bin/env node

//写一个32位位图
const fs = require('fs');//写图片需要用到文件

const width = 16,//正方形位图,单位像素
      height = 16;

var pixelByteSize = width * height * 4;//32b=4B,每个像素占4B
var totalSize = pixelByteSize + 54;//整个位图大小：数据+头信息54B

var buf = new Buffer(totalSize);

buf.fill(0);//初始化

// head
buf.write('BM');
buf.writeUInt32LE(totalSize, 0x02);
buf.writeUInt32LE(54, 0x0a);//头大小的偏移量
buf.writeUInt32LE(40, 0x0e);//头大小
buf.writeUInt16LE(1, 0x1a);//颜色版调色板数
buf.writeUInt16LE(32, 0x1c);//颜色深度
buf.writeUInt32LE(pixelByteSize, 0x22);
buf.writeInt32LE(width, 0x12);
buf.writeInt32LE(height, 0x16);

// data
for(var i=54; i<totalSize; i+=4) {
  buf.writeUInt32LE(0xff0000ff, i);//蓝色不透明
}

fs.writeFile('./out.bmp', buf, (err) => {
  if(err != null) {
    console.error(err);
    process.exit(1);
  }  
});

  
